< Back
# Spring Oauth Resource server and Client
To configur both
```yaml
spring:
security:
oauth2:
resourceserver:
jwt:
issuer-uri: http://192.168.99.111:8180/auth/realms/wshop
client:
registration:
keycloak:
client-id: wshipapi
client-secret: ZZBK21Ip314DcJkBoSyv1LcQcdZE5aY3
authorization-grant-type: client_credentials
provider:
keycloak:
authorization-uri: http://192.168.99.111:8180/auth/realms/wshop/protocol/openid-connect/auth
token-uri: http://192.168.99.111:8180/auth/realms/wshop/protocol/openid-connect/token
user-info-uri: http://192.168.99.111:8180/auth/realms/wshop/protocol/openid-connect/userinfo
user-name-attribute: sub
jwk-set-uri: http://192.168.99.111:8180/auth/realms/wshop/protocol/openid-connect/certs
```
for more details : https://docs.spring.io/spring-security/reference/servlet/oauth2/client/authorization-grants.html
## Extend Security config
```java
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and().cors()
.and()
.authorizeHttpRequests()
.mvcMatchers(HttpMethod.POST, "api/v1/product/**").hasAuthority("SCOPE_add:product")
.mvcMatchers(HttpMethod.GET, "api/v1/products/**").hasAnyAuthority("SCOPE_buy:product", "SCOPE_get:product")
.anyRequest().authenticated()
.and()
.oauth2ResourceServer().jwt()
;
}
}
```